package com.ruoyi.ldzlsc.mapper;

import com.ruoyi.ldzlsc.domain.ScProductionOrderDetail;
import java.util.List;
import java.util.Map;

/**
 * 生产订单明细Mapper接口
 *
 * @author ldzl
 * @date 2023-09-15
 */
public interface ScProductionOrderDetailMapper {
    /**
     * 查询生产订单明细列表
     *
     * @param scProductionOrderDetail 生产订单明细
     * @return 生产订单明细集合
     */
    List<ScProductionOrderDetail> selectScProductionOrderDetailList(ScProductionOrderDetail scProductionOrderDetail);

    /**
     * 根据生产订单ID查询明细
     *
     * @param prodOrderId 生产订单ID
     * @return 生产订单明细集合
     */
    List<ScProductionOrderDetail> selectScProductionOrderDetailByOrderId(Long prodOrderId);

    /**
     * 查询生产订单明细详细信息
     *
     * @param id 生产订单明细ID
     * @return 生产订单明细
     */
    ScProductionOrderDetail selectScProductionOrderDetailById(Long id);

    /**
     * 新增生产订单明细
     *
     * @param scProductionOrderDetail 生产订单明细
     * @return 结果
     */
    int insertScProductionOrderDetail(ScProductionOrderDetail scProductionOrderDetail);
    
    /**
     * 批量新增生产订单明细
     *
     * @param scProductionOrderDetailList 生产订单明细列表
     * @return 结果
     */
    int batchInsertScProductionOrderDetail(List<ScProductionOrderDetail> scProductionOrderDetailList);
    
    /**
     * 修改生产订单明细
     *
     * @param scProductionOrderDetail 生产订单明细
     * @return 结果
     */
    int updateScProductionOrderDetail(ScProductionOrderDetail scProductionOrderDetail);
    
    /**
     * 删除生产订单明细
     *
     * @param id 生产订单明细ID
     * @return 结果
     */
    int deleteScProductionOrderDetailById(Long id);
    
    /**
     * 批量删除生产订单明细
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    int deleteScProductionOrderDetailByIds(Long[] ids);
    
    /**
     * 根据生产订单ID删除明细
     *
     * @param prodOrderId 生产订单ID
     * @return 结果
     */
    int deleteScProductionOrderDetailByOrderId(Long prodOrderId);
    
    /**
     * 根据生产订单ID查询生产计划列表
     *
     * @param prodOrderId 生产订单ID
     * @return 生产计划Map列表
     */
    List<Map<String, Object>> selectProductionPlanByOrderId(Long prodOrderId);
    
    /**
     * 根据生产订单ID查询工单列表
     *
     * @param prodOrderId 生产订单ID
     * @return 工单Map列表
     */
    List<Map<String, Object>> selectWorkOrderByOrderId(Long prodOrderId);
}
